<!DOCTYPE html>
<html lang="en">

<head>
  <meta charset="UTF-8" />
  <meta name="viewport" content="width=device-width, initial-scale=1.0" />
  <meta http-equiv="X-UA-Compatible" content="ie=edge" />
  <link rel="stylesheet" href="css/reset.css" />
  <link rel="stylesheet" href="css/main.css" />
  <title>聊天机器人</title>
</head>

<body>
  <div class="wrap">
    <!-- 头部 Header 区域 -->
    <div class="header">
      <h3>小思同学</h3>
      <img src="img/person01.png" alt="icon" />
    </div>
    <!-- 中间 聊天内容区域 -->
    <div class="main">
      <ul class="talk_list" style="top: 0px" id="talk_list">
        <!-- 机器人 -->
        <li class="left_word">
          <img src="img/person01.png" /> <span>嗨，最近想我没有？</span>
        </li>
        <!-- 我 -->
        <!-- <li class="right_word">
          <img src="img/person02.png" /> <span>嗨，最近想我没有？</span>
        </li> -->
      </ul>
    </div>
    <!-- 底部 消息编辑区域 -->
    <div class="footer">
      <img src="img/person02.png" alt="icon" />
      <input type="text" placeholder="说的什么吧..." class="input_txt" id="ipt" />
      <input type="button" value="发 送" class="input_sub" id="btnSend" />
    </div>
  </div>
  <script type="text/javascript" src="js/jquery-1.12.4.min.js"></script>
  <script src="js/axios.min.js"></script>
  <audio src="" id="voice" autoplay style="display: none"></audio>
  <script>
    /*
        1. 给按钮注册点击事件
        2. 获取输入的内容
        3. 生成自己输入的内容
        4. 发送ajax请求-获取到回复的内容
        5. 生成回复的内容
        6. 发送ajax请求-获取到回复的音频
        7. 播放播放
      */
      // 入口函数
    $(function () {
      // 绑定按钮点击事件
      $('#btnSend').on('click', async function () {
        // 获取输入框的值
        let val = $('#ipt').val().trim();
        // 获取到值后清空输入框
        $('#ipt').val('');
        // 判断内容是否为空
        if (!val) {
          return alert('聊天内容不能为空')
        }
        // 在页面上生成我的聊天内容，并且滚动文档窗口
        $(`<li class="right_word">
          <img src="img/person02.png" /> <span>${val}</span>
        </li>`).appendTo('#talk_list')[0].scrollIntoView();
        // 发起请求
        const res = await axios({
          method: 'get',
          url: 'http://www.liulongbin.top:3006/api/robot',
          params: {
            spoken: val
          }
        })
        console.log(res);
        // 获取返回的内容
        let text = res.data.data.info.text;
        // 在页面上生成机器人的聊天内容，并且滚动文档窗口
        $(`<li class="left_word">
          <img src="img/person01.png" /> <span>${text}</span>
        </li>`).appendTo('#talk_list')[0].scrollIntoView();
        // 再次发起请求，把获取的文本转语音
        const res2 = await axios({
          method: 'get',
          url: 'http://www.liulongbin.top:3006/api/synthesize',
          params: {
            text
          }
        })
        console.log(res2);
        let url = res2.data.voiceUrl
        // 把获取的音频赋值给audio标签
        $('audio').attr('src', url);
      })
    })
  </script>
</body>

</html>